package beans;

import lemmatizer.Lemmatizer;

/**
 * @author Benjamin Gouit
 *
 */
public class StopList {

	// Liste des mots vides
	static private final String[] listeMotsVides =
		{"a", "à", "afin", "ai", "aie", "aient", "ainsi", "ais", "ait", "alors", "as", "assez",
			"au", "auquel", "auquelle", "aussi", "aux", "auxquelles", "auxquels", "avaient", "avais",
			"avait", "avant", "avec", "avoir", "beaucoup", "ca", "ça", "car", "ce", "cela", "celle",
			"celles", "celui", "certain", "certaine", "certaines", "certains", "ces", "cet", "cette",
			"ceux", "chacun", "chacune", "chaque", "chez", "ci", "comme", "comment", "concern",
			"concernant", "connait", "connaît", "conseil", "contre", "d", "dans", "de", "des",
			"desquelles", "desquels", "differe", "different", "différent", "differente", "différente",
			"differentes", "différentes", "differents", "différents", "dois", "doit", "doivent", "donc",
			"dont", "du", "dû", "duquel", "dus", "e", "elle", "elles", "en", "encore", "ensuite",
			"entre", "es", "est", "et", "etai", "etaient", "étaient", "etais", "étais", "etait",
			"était", "etant", "étant", "etc", "ete", "été", "etiez", "étiez", "etion", "etions",
			"étions", "etre", "être", "eu", "eux", "evidenc", "evidence", "évidence", "expliqu",
			"explique", "fai", "faire", "fais", "fait", "faite", "faites", "faits", "fera", "feras",
			"fini", "finie", "finies", "finis", "finit", "font", "grace", "grâce", "ici", "il", "ils",
			"intere", "interessant", "intéressant", "interesse", "intéressé", "j", "jamais", "je", "l",
			"la", "laquell", "laquelle", "le", "lequel", "les", "lesquelles", "lesquels", "leur",
			"leurs", "lors", "lorsque", "lui", "m", "ma", "mainten", "maintenant", "mais", "mal",
			"me", "meme", "même", "memes", "mêmes", "mes", "mettre", "moi", "moins", "mon", "n", "ne",
			"ni", "no", "non", "nos", "notre", "nôtre", "notres", "nôtres", "nou", "nous", "obtenu",
			"obtenue", "obtenues", "obtenus", "on", "ont", "or", "ou", "où", "par", "parfois", "parle",
			"pars", "part", "pas", "permet", "peu", "peut", "peuvent", "peux", "plus", "pour",
			"pourquo", "pourquoi", "pouvez", "pouvons", "prendre", "pres", "près", "princip",
			"principal", "principaux", "qu", "quand", "que", "quel", "quelle", "quelles", "quelques",
			"quels", "qui", "quoi", "sa", "savoir", "se", "seront", "ses", "seul", "seuls", "si",
			"soient", "soit", "son", "sont", "sous", "souvent", "sui", "suis", "sur", "t", "ta", "te",
			"tel", "telle", "telleme", "tellement", "telles", "tels", "tes", "ton", "toujour",
			"toujours", "tous", "tout", "toute", "toutes", "traite", "tres", "très", "trop", "tu",
			"un", "une", "unes", "uns", "utilise", "utilisé", "utilisee", "utilisée", "utilisées",
			"utilisees", "utilisés", "utilises", "va", "venir", "vers", "veut", "veux", "vont", "voulez",
			"voulu", "vous", "y"};
	
	
	/**
	 * @param word : mot à tester la pertinence
	 * @return booléen si le mot est vide (true) ou pertinent (false)
	 */
	static public boolean isEmptyWord (String word) {
		boolean isEmptyWord = false;
		if (word.length() == 0)
			isEmptyWord = true;
		else {
			word = word.toLowerCase();
			for (String emptyWord : StopList.listeMotsVides) {
				if (word.compareToIgnoreCase(emptyWord) == 0)
					isEmptyWord = true;
			}
		}
		
		return isEmptyWord;
	}
	
	/**
	 * @param word : mot à tronquer
	 * @return mot tronqué à 7 si besoin avec les majuscules transformées en minuscules
	 */
	static public String tronque (String word) {
		/*word = word.toLowerCase();
		if (word.length() > 7)
			return word.substring(0, 7);
		else
			return word;*/
		if (word.matches("[0123456789]*"))
			return word;
		
		String retWord = null;
		retWord = Lemmatizer.lemme(word.toLowerCase());
		return retWord;
	}
	
	static public String[] split (String wordList) {
		return wordList.replace("[", "(").replace("]", ")").replace("\\", "/").replace("\\", "/").split("[ ,.!?;/`'\n\t\r()«»\":*#{}_]");
	}
}
